<template>
  <div class="chart-container">
    <div ref="chartRef" class="container"></div>
    <div ref="chartRefArea" class="containerArea"></div>
  </div>

</template>

<script setup>
import { onMounted, ref } from "vue";
import * as echarts from "echarts";
const chartRef = ref(null);
const option = {
  backgroundColor: '#1e44879f',
  tooltip: {
    show: false,
    trigger: 'item'
  },
  legend: {
    itemWidth: 10,
    itemHeight: 10,
    orient: 'vertical',
    left: 0,
    top: '16%',
    // size: 10,
    textStyle: {
      color: '#fff',
      fontSize: 15
    }
  },
  series: [
    {
      name: '详细数据',
      type: 'pie',
      radius: ['70%', '50%'],
      // avoidLabelOverlap: true,
      right: '-30%',
      label: {
        show: true,
        formatter: '{d}%',
        textStyle: {
          color: '#fff',
          fontSize: 15,
        }
      },
      emphasis: {
        focus: 'self',
        label: {
          show: true,
          fontSize: 10,
          fontWeight: 'bold',
          color: '#fff'
        }

      },
      data: [
        { value: 42, name: '正常运行', itemStyle: { color: '#91CC75' } },
        { value: 14, name: '正常待机', itemStyle: { color: '#5470C6' } },
        { value: 40, name: '需要维护', itemStyle: { color: '#edef51' } },
        { value: 4, name: '需要维修', itemStyle: { color: '#d21414' } },
      ]
    }
  ]
};
const chartRefArea = ref(null);

const option2 = {
  backgroundColor: '#1e44879f',
  color: ['#80FFA5', '#00DDFF', '#37A2FF', '#FF0087', '#FFBF00'],
  title: {
    text: '实时能耗',
    top: '5%',
    left: '5%',
    textStyle: {
      fontSize: 20,
      color: '#fff',
      fontWeight: 400
    }
  },
  tooltip: {
    show: false,
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
      label: {
        backgroundColor: '#6a7985'
      }
    }
  },
  grid: {
    left: '-20%',
    right: '4%',
    bottom: 0,
    top: '25%',
    containLabel: true
  },
  xAxis: [
    {
      show: false,
      type: 'category',
      boundaryGap: false,
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    }
  ],
  yAxis: [
    {
      show: false,
      type: 'value'
    }
  ],
  series: [
    {
      name: 'Line 1',
      type: 'line',
      stack: 'Total',
      smooth: true,
      lineStyle: {
        width: 0
      },
      showSymbol: false,
      areaStyle: {
        opacity: 0.8,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: 'rgb(128, 255, 165)'
          },
          {
            offset: 1,
            color: 'rgb(1, 191, 236)'
          }
        ])
      },
      emphasis: {
        focus: 'series'
      },
      data: [140, 232, 101, 264, 90, 340, 250]
    },
    {
      name: 'Line 2',
      type: 'line',
      stack: 'Total',
      smooth: true,
      lineStyle: {
        width: 0
      },
      showSymbol: false,
      areaStyle: {
        opacity: 0.8,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: 'rgb(0, 221, 255)'
          },
          {
            offset: 1,
            color: 'rgb(77, 119, 255)'
          }
        ])
      },
      emphasis: {
        focus: 'series'
      },
      data: [120, 282, 111, 234, 220, 340, 310]
    },
    {
      name: 'Line 3',
      type: 'line',
      stack: 'Total',
      smooth: true,
      lineStyle: {
        width: 0
      },
      showSymbol: false,
      areaStyle: {
        opacity: 0.8,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: 'rgb(55, 162, 255)'
          },
          {
            offset: 1,
            color: 'rgb(116, 21, 219)'
          }
        ])
      },
      emphasis: {
        focus: 'series'
      },
      data: [320, 132, 201, 334, 190, 130, 220]
    },
    {
      name: 'Line 4',
      type: 'line',
      stack: 'Total',
      smooth: true,
      lineStyle: {
        width: 0
      },
      showSymbol: false,
      areaStyle: {
        opacity: 0.8,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: 'rgb(255, 0, 135)'
          },
          {
            offset: 1,
            color: 'rgb(135, 0, 157)'
          }
        ])
      },
      emphasis: {
        focus: 'series'
      },
      data: [220, 402, 231, 134, 190, 230, 120]
    },
    {
      name: 'Line 5',
      type: 'line',
      stack: 'Total',
      smooth: true,
      lineStyle: {
        width: 0
      },
      showSymbol: false,
      label: {
        show: true,
        position: 'top'
      },
      areaStyle: {
        opacity: 0.8,
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: 'rgb(255, 191, 0)'
          },
          {
            offset: 1,
            color: 'rgb(224, 62, 76)'
          }
        ])
      },
      emphasis: {
        focus: 'series'
      },
      data: [220, 302, 181, 234, 210, 290, 150]
    }
  ]
};


onMounted(() => {
  const myChart = echarts.init(chartRef.value);
  myChart.setOption(option);

  const myChart2 = echarts.init(chartRefArea.value);
  myChart2.setOption(option2);

  // ✅ 动态更新数据
  // setInterval(() => {
  //   updateChartData(myChart2);
  // }, 500); // 每2秒更新一次
});

// function updateChartData(chart) {
//   const seriesData = chart.getOption().series[0].data;
//   const newData = seriesData.slice(1); // 删除第一个数据点

//   // 随机生成新数据点
//   const randomValue = Math.floor(Math.random() * 300);
//   newData.push(randomValue);

//   chart.setOption({
//     series: [{
//       data: newData
//     }]
//   });
// }
</script>

<style lang="less" scoped>
@import "./index.less";
</style>